package com.info.idal;

import com.info.model.UserInfo;

import java.sql.SQLException;
import java.util.List;

//用户接口方法，只定义方法
public interface IUserDAL {
    /**
     * 用户登录方法
     * 输入参数：用户名和密码
     * */
    public UserInfo validateUserLogin(UserInfo userInfo);

    /**
     * 用户注册方法
     * 输入用户名和密码
     * */
    public Integer adduser(UserInfo userInfo);

    /**
     * 根据添加新用户返回的主键id，添加关系表数据
     * */
    public Integer addUserRoleRelationShip(UserInfo userInfo);

    /**
     * 用户注册判断用户名是否已经存在
     * 输入用户
     * */
    public boolean validateUserIsExist(UserInfo userInfo);

    /**
     * 查询所有用户信息
     * */
    public List<UserInfo> getAllUsers();

    /**
     * 修改当前登录用户的密码
     * 输入参数userid，新密码
     * @return 受影响的行，大于0则执行更新成功
     * */
    public Integer modityUserPassByUserId(UserInfo userInfo);

    /**
     * 根据用户id获取指定用户的信息进行修改
     * @return 用户基本信息
     * */
    public UserInfo getUserInfoById(UserInfo userInfo);

    /**
     * 根据用户id修改用户基本信息
     * 参数：用户id,年龄，性别，地址
     * @return 受影响的行，执行成功>0
     * */
    public Integer modifyUserInfoById(UserInfo userInfo);

    /**
     * 根据用户id修改用户权限
     * 参数:用户id,role_id
     * @return 受影响的行，执行成功>0
     * */
    public Integer modifyUserRoleById(UserInfo userInfo);

    /**
     * 根据用户id删除用户基本信息表
     * 参数： user_id
     * @return 受影响的行，执行成功>0
     * */
    public Integer deleteUserById(UserInfo userInfo);


    /**
     * 根据用户id删除用户权限关系表
     * 参数： user_id
     * @return 受影响的行，执行成功>0
     * */
    public Integer deleteUserRoleRelationShip(UserInfo userInfo);
}
